// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Casea casino online: Vodnik za registracijo in verifikacijo računa – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Casea Casino Online: Celovit vodnik za igralce v Sloveniji

Iskanje zanesljivega in zabavnega okolja za igranje na srečo je za mnoge slovenske igralce postal pravi izziv. Ko govorimo o Casea, igralci pogosto iščejo odgovore na vprašanja o varnosti, ponudbi iger in hitrosti izplačil. V tem članku bomo podrobno razčlenili, kaj lahko pričakujete pri igranju v tem online okolju in na kaj morate biti pozorni, preden opravite svoj prvi depozit.

Spletna igralnica Casea casino online je zasnovana tako, da zadovolji potrebe tako popolnih začetnikov kot tudi izkušenih strategov. Pri ocenjevanju kakovosti igralnice ni dovolj le pogled na vizualno podobo, temveč moramo preveriti celoten ekosistem – od licenciranja in varnosti do tega, kako hitro lahko zares dvignete svoj dobitek na osebni bančni račun.

Kako opraviti registracijo in verifikacijo računa

Postopek registracije na Casea casino online je zasnovan tako, da je čim bolj preprost, a hkrati skladen s strogimi pravili za preprečevanje pranja denarja. Običajno boste morali vnesti osnovne osebne podatke, kot so ime, priimek, elektronski naslov in datum rojstva. Pomembno je, da so vsi podatki točni, saj boste kasneje morali opraviti postopek KYC (Know Your Customer).

Verifikacija je nujen korak, ki vsakega igralca ščiti pred zlorabami. Pripravite si kopijo osebnega dokumenta, kot sta osebna izkaznica ali potni list, ter dokazilo o naslovu, na primer račun za komunalne storitve. Ko so ti dokumenti enkrat potrjeni, postanejo vaši umiki denarja bistveno hitrejši in brez nepotrebnih zapletov pri obdelavi vaših zahtevkov.

Bonusi in njihove zahteve za stavo

Vsaka promocijska ponudba, ki jo najdete v svetu spletnih kazinojev, prihaja s tako imenovanimi “wagering requirements” ali zahtevami za stavo. Te določajo, kolikokrat morate znesek bonusa vložiti v igro, preden ga lahko izplačate. Priporočamo, da vedno natančno preberete pogoje, saj se lahko hitro zgodi, da bonus na papirju izgleda odlično, v praksi pa ga je zaradi visokih zahtev težko pretvoriti v pravi denar.

Pogosti tipi bonusov, s katerimi se boste srečali, vključujejo:

  • Bonus dobrodošlice na prvi depozit.
  • Brezplačni vrtljaji na izbranih igralnih avtomatih.
  • Povračilo denarja (cashback) v primeru neuspešnih stav.
  • Program zvestobe za stalne stranke z ekskluzivnimi ugodnostmi.

Pregled plačilnih metod in izplačil

Hitrost izplačila je verjetno najpomembnejši dejavnik za večino igralcev. Casea casino online ponuja več različnih možnosti za polog in dvig sredstev, od klasičnih bančnih nakazil do sodobnih e-denarnic. Izbira plačilnega sredstva lahko bistveno vpliva na hitrost transakcije, zato vedno preverite, katera metoda omogoča najkrajše čakalne dobe.

Metoda Čas pologa Čas izplačila
E-denarnice Takoj 1-24 ur
Bančne kartice Takoj 2-5 delovnih dni
Bančno nakazilo 1-3 dni 3-7 delovnih dni

Kazino v živo in športne stave

Za tiste, ki uživajo v vzdušju prave igralnice, je live casino nepogrešljiv del ponudbe. Omogoča interakcijo s pravimi delivci prek video prenosa v visoki ločljivosti, kar ustvari pristno izkušnjo. Blackjack, ruleta in bakarat so le nekatere izmed iger, ki jih lahko igrate v realnem času, kar zagotavlja občutek preglednosti in poštenosti igre.

Športne stave prav tako postajajo vse bolj integrirane v sodobne sisteme. Če se odločite za stavljenje na tekme, bodite pozorni na kvote in vrsto stav, ki jih sistem podpira. Ustrezna strategija pri športnih stavah vključuje spremljanje statistik igralcev in ekip ter razumevanje tveganja, ki ga prinaša vsaka posamezna stava.

Mobilna izkušnja in uporabniška izkušnja

Igranje na mobilnih napravah je standard, ki ga igralci pričakujejo. Večina sodobnih casinojev je optimiziranih za brskalnike na telefonu, nekateri pa ponujajo tudi namenske aplikacije. Pomembna je stabilnost povezave in hitrost nalaganja igralnih avtomatov, saj nihče ne mara prekinitev med igro, ko se bori za dobitno kombinacijo.

Preverite tudi preglednost menijev in dostopnost podpore strankam na mobilni napravi. Uporabniška izkušnja na pametnem telefonu se ne sme razlikovati od tiste na namiznem računalniku – vsi ključni gumbi, kot so “blagajna”, “profil” in “pomoč”, morajo biti vedno na dosegu roke.

Varnost, licenca in podpora strankam

Varnost vaših podatkov in sredstev je na prvem mestu. Vsaka ugledna spletna stran mora imeti ustrezno licenco, ki zagotavlja, da so vsi procesi pod nadzorom regulatornih organov. Če naletite na težave, je pomembno imeti na voljo hitro in odzivno podporo, ki vam lahko pomaga v vsakem trenutku, najraje preko klepeta v živo.

Pri izbiri igralnice vedno preverite naslednje:

  • Ali imajo veljavno licenco za igre na srečo?
  • Kakšni so komentarji drugih uporabnikov na neodvisnih forumih?
  • Ali ponujajo orodja za odgovorno igranje, kot so omejitve depozitov?
  • Kako hitro se odzovejo na vaša vprašanja prek e-pošte ali klepeta?

Odgovorno igranje in zaključne misli

Nazadnje ne smemo pozabiti na najpomembnejše pravilo: igre na srečo naj ostanejo zabava, ne način zaslužka. Vedno igrajte z zneski, ki si jih lahko privoščite izgubiti. Večina zanesljivih ponudnikov vključuje različne mehanizme samoizključitve in nastavitve limitov, ki vam pomagajo ohraniti nadzor nad svojim igralnim vedenjem.

Izbira prave platforme se začne z informiranostjo. Upamo, da vam je ta pregled pomagal bolje razumeti, kaj prinaša Casea casino online in kako se na spletu gibati varno ter pametno. Vedno preverite aktualne pogoje in ne pozabite prebrati drobnega tiska, preden se odločite za aktivacijo kakršnih koli bonusov ali dolgoročno igranje.

Design and Develop by Ovatheme